/* AMXX Mod script.
*
*
*  Join_IP 1.1 created by jsauce
* 
*
*  Okay so this plugin gets a user's info when they are authorized, then
*  it displays it to everyone when they join and leave. If you are an admin you 
*  get to see the user's ip address and steamid. All other user's just get to see 
*  the player's name! 
*  
*
*  
*
*  1.1 Changed access() to get_user_flags() seems to work better for everyone.
*      Also changed how the rank shows, and changed default show level to ADMIN_LEVEL_A
*  1.0 initial release		// rank idea from Kindzhon's enter/leave plugin.
*
*/


#include <amxmodx>
#include <amxmisc>

#define CSSTATS // If you want to show the user's rank on join and on leave.
//	You must be using the csstats module and have stats plugins loaded.
//	Comment it out if you don't want to use it.
#if defined CSSTATS
#include <csstats>
#endif
#define ADMIN ADMIN_LEVEL_A	// Change to something else if you like.

public plugin_init()
{
  register_plugin("Join IP","1.1","jsauce")
  
}
public client_authorized(id)
{
	set_task(0.5,"client_is_auth",id)
}

public client_is_auth(id)
{
	new authid[35],user[32],ip[32],players[32],inum
	get_user_name(id,user,31)
	get_user_ip(id,ip,31,1)
	get_user_authid(id,authid,34)
	get_players(players,inum)
	#if defined CSSTATS
	new izStats[8], izBody[8]
	new iRankPos, iRankMax
  	iRankPos = get_user_stats(id,izStats,izBody)
  	iRankMax = get_statsnum()
	for (new i = 0; i < inum; ++i)
	{
    		if(get_user_flags(players[i]) & ADMIN)
		{
      			client_print(players[i],print_chat,"%s (%s) (%s) (RANK: %i de %i) Entro al Servidor.",user,ip,authid,iRankPos,iRankMax)
      		}
      		else
		{ 
  			client_print(players[i],print_chat,"%s (%s) (%s) (RANK: %i de %i) Entro al Servidor.",user,ip,authid,iRankPos,iRankMax)
  		}
  	}
	#else
	for (new i = 0; i < inum; ++i)
	{
    		if(get_user_flags(players[i]) & ADMIN)
		{
      			client_print(players[i],print_chat,"%s (%s) (%s) (RANK: %i de %i) Entro al Servidor.",user,ip,authid,iRankPos,iRankMax)
      		}
      		else
		{ 
  			client_print(players[i],print_chat,"%s (%s) (%s) (RANK: %i de %i) Entro al Servidor.",user,ip,authid,iRankPos,iRankMax)
  		}
  	}
	#endif
	return PLUGIN_CONTINUE
}



public client_disconnect(id)
{
	new authid[35],user[32],ip[32],players[32],inum
	get_user_name(id,user,31)
	get_user_ip(id,ip,31,1)
	get_user_authid(id,authid,34)
	get_players(players,inum)
	#if defined CSSTATS
	new izStats[8], izBody[8]
	new iRankPos, iRankMax
  	iRankPos = get_user_stats(id,izStats,izBody)
  	iRankMax = get_statsnum()
	for (new i = 0; i < inum; ++i)
	{
    		if(get_user_flags(players[i]) & ADMIN)
		{
      			client_print(players[i],print_chat,"%s (%s) (%s) (RANK: %i de %i) Salio del Servidor.",user,ip,authid,iRankPos,iRankMax)
      		}
      		else
		{ 
  			client_print(players[i],print_chat,"%s (%s) (%s) (RANK: %i de %i) Salio del Servidor.",user,ip,authid,iRankPos,iRankMax)
  		}
  	}
	#else
	for (new i = 0; i < inum; ++i)
	{
    		if(get_user_flags(players[i]) & ADMIN)
		{
      			client_print(players[i],print_chat,"%s (%s) (%s) (RANK: %i de %i) Salio del Servidor.",user,ip,authid,iRankPos,iRankMax)
      		}
      		else
		{ 
  			client_print(players[i],print_chat,"%s (%s) (%s) (RANK: %i de %i) Salio del Servidor.",user,ip,authid,iRankPos,iRankMax)
  		}
  	}
	#endif
	return PLUGIN_CONTINUE
}
